﻿namespace CalcSharp
{
    sealed class ConstCommands
    {
        private ConstCommands() { }

        public static string[] NonThreadCommands
        {
            get
            {
                return new string[]
                {
                    "SET_EDIT",
                    "MTRX_EDIT",
                    "DEFINE",
                    "HELP",
                    "PLOT",
                    "PLOT_DATA",
                    "TIMER_START",
                    "TIMER_STOP"
                };
            }
        }

        public static void LoadCommands()
        {
            Program.supported = new string[] 
            {
                "EXIT",         //  0
                "ADD",          //  1 - eval
                "SUB",          //  2 - eval
                "MUL",          //  3 - eval
                "DIV",          //  4 - eval
                "CLEAR",        //  5
                "ECHO",         //  6
                "CMDLIST",      //  7
                "POW",          //  8 - eval
                "SQR",          //  9 - eval
                "SIN",          // 10 - eval
                "COS",          // 11 - eval
                "TAN",          // 12 - eval
                "CTG",          // 13 - eval
                "DEG2RAD",      // 14 - eval
                "RAD2DEG",      // 15 - eval
                "MODE",         // 16 
                "FACT",         // 17 - eval
                "ARCSIN",       // 18 - eval
                "ARCCOS",       // 19 - eval
                "ARCTAN",       // 20 - eval
                "EXEC",         // 21
                "FORC",         // 22
                "LOG",          // 23 - eval
                "DEFINE",       // 24
                "RANDOM",       // 25
                "CONVERT",      // 26
                "CURRENCY",     // 27
                "EVAL",         // 28
                "PLOT",         // 29
                "COMB_NOREP",   // 30
                "COMB_REP",     // 31
                "VAR_NOREP",    // 32
                "PERCENT",      // 33 - eval
                "APERCENT",     // 34 - eval
                "ISPRIME",      // 35 - eval
                "GCD",          // 36 - LNKO magyarul - eval
                "LCM",          // 37 - LKKT magyarul - eval
                "HELP",         // 38
                "QUADEQ",       // 39 - másodfokú egyenlet megoldása
                "B_AND",        // 40
                "B_OR",         // 41
                "B_NOT",        // 42
                "B_EQ",         // 43
                "B_XOR",        // 44
                "B_NAND",       // 45
                "B_NOR",        // 46
                "CHCODE",       // 47
                "SET_PUSH",     // 48
                "SET_MAX",      // 49
                "SET_MIN",      // 50
                "SET_COUNT",    // 51
                "SET_SUM",      // 52
                "SET_AVG",      // 53
                "SET_MEDIAN",   // 54
                "SET_MODUS",    // 55
                "SET_DEVIAT",   // 56
                "SET_RANGE",    // 57
                "PLOT_DATA",    // 58
                "SET_DESCART",  // 59
                "MTRX_DET",     // 60
                "MTRX_ADD",     // 61
                "MTRX_SUB",     // 62
                "MTRX_MUL",     // 63
                "MTRX_NEG",     // 64
                "MTRX_INV",     // 65
                "MTRX_TRNSF",   // 66
                "FIBONACCI",    // 67
                "ROUND",        // 68 - eval
                "MTRX_TRNSPS",  // 69
                "SAVE",         // 70
                "MTRX_EDIT",    // 71
                "SIGN",         // 72 - eval
                "MOD",          // 73 - eval
                "LOAD",         // 74
                "DEG2GRAD",     // 75 - eval
                "GRAD2DEG",     // 76
                "MEM_MOV",      // 77
                "MEM_REM",      // 78
                "MEM_CLR",      // 79
                "SET_UNION",    // 80
                "SET_SECTION",  // 81
                "SET_DIF",      // 82
                "B_SHL",        // 83
                "B_SHR",        // 84
                "SINH",         // 85 - eval
                "COSH",         // 86 - eval 
                "TANH",         // 87 - eval
                "MEM_DUMP",     // 88
                "MEM_LOAD",     // 89
                "MTRX_STORAGE", // 90
                "MTRX_GTRNSF",  // 91
                "IF",           // 92
                "FOR",          // 93
                "ARCSINH",      // 94 - eval
                "ARCCOSH",      // 95 - eval
                "ARCTANH",      // 96 - eval
                "INTEGRATE",    // 97
                "DERIVE",       // 98
                "SET_SORT",     // 99
                "SET_REV",      //100
                "SET_UNIQUE",   //101
                "FOREACH",      //102
                "SET_EDIT",     //103
                "MTRX_DIM",     //104
                "SIZEOF",       //105
                "SET_RNDORDER", //106
                "MTRX_HIST",    //107
                "ABS",          //108
                "STR2NUM",      //109
                "NUM2STR",      //110
                "TIMER_SET",    //111
                "TIMER_START",  //112
                "TIMER_STOP",   //113
                "TIMER_CLEAR",  //114
                "BITCOUNT",     //115
                "GAMMA",        //116
                "BETA",         //117
                "DIGAMMA",      //118
                "HARMONIC",     //119
                "VIETE"         //120
            };
        }
    }
}